/**
 * @file arc.h
 * @brief Fichier d'entéte du modulearc.
 *
 * @author Rachid Delory
 */
#ifndef _ARC_
#define _ARC_

/* ********************************************************************* */
/*                                                                       */
/*                        Librairies de Arc                              */
/*                                                                       */
/* ********************************************************************* */

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "liste.h"
#include "noeud.h"

/* ********************************************************************* */
/*                                                                       */
/*                  Définitions de la structure                          */
/*                                                                       */
/* ********************************************************************* */

/**
 * @struct sArc arc.h 
 * @brief Structure utilisée pour la gestion d'unarcd.
 * @var valeur Valeure contenu dans l'arc.
 * @var source Noeud d'origine de l'arc.
 * @var source Noeud de destination de l'arc.
 */
struct sArc {
  int valeur; 
  Noeud * source;
  Noeud * destination;
};
typedef struct sArc Arc;

void init_Arc(Element a);
void initCopie_Arc(Element *a1, const Element a2);
void creerCopie_Arc(Element *a1, const Element a2);
Arc * creer_Arc(const int valeur, Element source, Element destination);
void testament_Arc(Element a);
void detruire_Arc(Element *a);
void afficher_Arc(const Element a);
int comparer_Arc(const Element a1, const Element a2);

#endif
